package com.hsgene.user.persistence;

import com.hsgene.user.domain.ConsignAddress;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户收货地址Repository
 *
 * @author wangbing
 * @version 1.0, 2018/8/6
 */
@Repository
public interface ConsignAddressRepository {

    /**
     * 保存收货地址信息
     *
     * @param address 地址信息
     */
    void save(@Param("address") ConsignAddress address);

    /**
     * 更新收货地址信息
     *
     * @param address 地址信息
     */
    void update(@Param("address") ConsignAddress address);

    /**
     * 查询用户所有收货地址
     *
     * @param userId    用户id
     * @param userType  用户类型
     * @param available 是否可用
     * @return 收货地址列表
     */
    List<ConsignAddress> queryUserConsignAddress(@Param("userId") String userId, @Param("userType") String userType, @Param("available") Boolean available);

    /**
     * 查询指定的收货地址信息
     *
     * @param id 收货地址id
     * @return 收货地址信息
     */
    ConsignAddress findById(@Param("id") Long id);

    /**
     * 获取用户默认收货地址
     *
     * @param uerId    用户id
     * @param userType 用户类型
     * @return 默认收货地址
     */
    ConsignAddress getUserDefault(@Param("userId") String uerId, @Param("userType") String userType);
}
